package com.tarena.lbs.basic.web.rpc;

import com.tarena.lbs.basic.api.BasicApi;
import com.tarena.lbs.basic.web.service.AdminService;
import com.tarena.lbs.basic.web.service.UserGroupService;
import com.tarena.lbs.pojo.basic.dto.AdminDTO;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.DubboService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.util.Collections;
import java.util.List;

@DubboService
@Component
@Slf4j
public class BasicApiImpl implements BasicApi {
    @Autowired
    private AdminService adminService;
    @Autowired
    private UserGroupService userGroupService;
    @Override
    public AdminDTO getAdminDetail(Integer id) {
        log.info("远程调用查询商家信息:{}",id);
        AdminDTO adminDTO = null;
        try{
            adminDTO=adminService.detail(id);
        }catch (Exception e){
            log.error("远程调用查询商家信息失败:{}",e);
        }
        return adminDTO;
    }

    /**
     * 获取用户所属人群id列表
     * @param userId
     * @return
     */
    @Override
    public List<Integer> getUserGroups(Integer userId) {
        log.info("查询用户所属人群:{}",userId);
        // 初始化用户所属人群ID列表变量
        List<Integer> userGroupIds=null;
        try{
            // 调用userGroupService的getUserGroupIds方法获取用户所属人群ID列表
            userGroupIds=userGroupService.getUserGroupIds(userId);
        }catch (Exception e){
            // 记录查询用户所属人群失败的日志，并捕获异常
            log.error("查询用户所属人群失败:{}",e);
        }
        // 返回用户所属人群ID列表，如果查询失败则返回null
        return userGroupIds;
    }
}
